﻿using System;
using VsxToolset.Core;

namespace VsxToolset
{
  // ==================================================================================
  /// <summary>
  /// This attribute declares the name of the output window pane.
  /// </summary>
  // ==================================================================================
  [AttributeUsage(AttributeTargets.Class)]
  public sealed class PaneNameAttribute: StringAttribute
  {
    public PaneNameAttribute(string value) : base(value)
    {
    }
  }

  // ==================================================================================
  /// <summary>
  /// This attribute declares the initial visibility of the output window pane.
  /// </summary>
  // ==================================================================================
  [AttributeUsage(AttributeTargets.Class)]
  public sealed class InitiallyVisibleAttribute: BoolAttribute
  {
    public InitiallyVisibleAttribute(bool value): base(value)
    {
    }
  }

  // ==================================================================================
  /// <summary>
  /// This attribute declares if the output window pane should be cleared when the
  /// current solutiopn is closed.
  /// </summary>
  // ==================================================================================
  [AttributeUsage(AttributeTargets.Class)]
  public sealed class ClearWithSolutionAttribute: BoolAttribute
  {
    public ClearWithSolutionAttribute(bool value): base(value)
    {
    }
  }

  // ==================================================================================
  /// <summary>
  /// This attribute declares if writes to the output window panes should be thread 
  /// safe or not.
  /// </summary>
  // ==================================================================================
  [AttributeUsage(AttributeTargets.Class)]
  public sealed class ThreadSafeAttribute: BoolAttribute
  {
    public ThreadSafeAttribute(bool value) : base(value)
    {
    }
  }
}
